'TITLE("Recherche des labels et des connecteurs...")'
do i=1 to objets
'TYPE(O='i')'
if result=4 | result=12 | result=11 then do
'ABS(FINDLINE(1,COL(O),LINE(O)))'; j=result
if j>0 then do
net=equi.j
'READTEXT(O)'; label=result
label.net=label
end
end
end
'TITLE("Recherche des alimentations...")'
do i=1 to objets
'FINDPART('i',"ALIMENTATION")'; i=result
if i>0 then do
j=connexion_broche(i,1)
if j>0 then do
net=equi.j
'READTEXT(GETVAL('i'))'; label=result
label.net=label
end
end
else leave
end
'TITLE("Test redondances...")'
do i=1 to nets
do j=i+1 to nets
if label.j~="" then do
if label.i=label.j then do
do k=1 to objets
if equi.k=j then equi.k=i
end
label.j=""
end
end
end
end
'TITLE("Recherche des masses...")'
do i=1 to objets
'FINDPART('i',"MASSE")'; i=result
if i>0 then do
j=connexion_broche(i,1)
if j>0 then do
equi.0=0; label.0=0
call changer_labels(0,j)
end
end
else leave
end
do until c=0
'TITLE("Établissement équipotentielles terminé"):SELECT("Choisissez une action"+CHR(10)+"Visualiser les équipotentielles"+CHR(10)+"Contrôler la netlist"+CHR(10)+"Sauver la netlist"+CHR(10)+"Abandonner ce script")'
'SELECT("Type d''analyse à effectuer"+CHR(10)+"AC"+CHR(10)+"DC"+CHR(10)+"Transient")'
select
when result=1 then do
'SELECT("Type de variation"+CHR(10)+"Décade"+CHR(10)+"Octave"+CHR(10)+"Linéaire")'
select
when result=1 then do
f="DEC "; v="par décade"
end
when result=2 then do
f="OCT "; v="par octave"
end
when result=3 then do
f="LIN "; v="de test"
end
otherwise do
close(file)
return
end
end
'ASKNUM("Nombre de points 'v'?",100)'
f=f||result
'ASKTEXT("Quelle est la fréquence de début?","10")'
f=f||" "||result
'ASKTEXT("Quelle est la fréquence de fin?","100")'
analyse="AC "||f||' '||result
end
when result=2 then do
'UNMARK(-1):MESSAGE("Vous devez maintenant"+CHR(10)+"sélectionner une source")'
'PICKOBJ("Sélectionnez le générateur à faire varier.")'
f=result
if f<1 then return
'MARK('f'):TYPE('f')'
if result=5 then 'READTEXT('f')'
else 'READTEXT(GETREF('f'))'
f=result
'V0=ASKTEXT("Quelle est la valeur de départ?","V")'
f=f||' '||result
'V1=ASKTEXT("Quelle est la valeur finale.","V")'
f=f||' '||result
'ASKTEXT("Quel est l''incrément?",STR((VAL(V1)-VAL(V0))/100)+"V")'
analyse="DC "||f||' '||result
end
when result=3 then do
'ASKTEXT("Temps de simulation?","s")'; temps=result
'ASKTEXT("Pas de simulation?","s")'; pas=result
'ASKTEXT("Temps de début de la simulation?","s")'; d=result
analyse="tran "||pas||" "||temps||" "||d
end
otherwise
return
end
end
if analyse~="" then writeln(file,"."||analyse)
i=1
s=''
'UNMARK(-1):MESSAGE("Vous pouvez maintenant"+CHR(10)+"spécifier quels sont les"+CHR(10)+"signaux à visualiser"+CHR(10)+"Appuyez sur le bouton"+CHR(10)+"droit pour arrêter")'
do while i>0
'PICKOBJ("Sélectionnez un signal (label ou liaison)")'
/* Traitement des erreurs, interruption du programme */
syntax:
erreur=RC
'MESSAGE("Script SaveNets.AmiCAD"+CHR(10)+"Erreur de syntaxe"+CHR(10)+"en ligne 'SIGL'"+CHR(10)+"'errortext(erreur)'"):UNLOCK(-1):INIT(O,OO,I,X,V0,V1,B)'
exit
error:
'MESSAGE("Script SaveNets.AmiCAD"+CHR(10)+"Erreur en ligne 'SIGL'"):UNLOCK(-1):INIT(O,OO,I,X,V0,V1,B)'